jsp技术被淘汰了?那还要不要学它? | 您所在的位置:网站首页 › jstl el 还在用吗 › jsp技术被淘汰了?那还要不要学它? |
目录
一、jsp概述二、jsp语法三、EL表达式最后
今天是刘小爱自学Java的第92天。 感谢你的观看,谢谢你。 话不多说,开始今天的学习: 首先声明:jsp这个技术基本被淘汰了,不太重要,用到它的可能性很低,但是有些企业还是会用到的。 花一天时间对其做一个简单的了解。 一、jsp概述1jsp出现的原因 jsp这个技术的出现是为了解决一个什么问题? 先看如下情况: 在Java代码中,服务器要响应一个HTML页面给浏览器,需要将标签拼接在代码中。 这样一顿操作下来就会显得十分地繁琐,操作麻烦不说,阅读性还差。 那有没有什么方法解决这个问题呢? jsp技术就应运而生了,在jsp文件中,既能写Java代码,又能写HTML代码,特别地厉害。 2jsp定义 JSP全名为Java Server Pages,翻译为java服务器页面,其本质是一个简化的Servlet。 它是由Sun公司倡导、许多公司参与一起建立的一种动态网页技术标准。 大白话就是一个既能书写Java代码又能书写HTML代码的文件。 3jsp为什么被淘汰了? jsp被淘汰本身并不是因为技术落后的原因,它之所以被淘汰是因为行业趋势。 现在强调前后端分离,前端写前端的代码,后端写后端的代码,没有必要将前端和后端代码融合在一起,所以jsp使用就受限了。 当然也并不是完全就没人用了,只是用的少了。 二、jsp语法1在jsp中书写代码 ①注释格式 在jsp中的注释格式为: ②Java代码编写 格式为:,在该格式里面就能编写Java代码。 这样编写以后,在浏览器上输入对应的路径,就能发现能用Java语法在浏览器上输入内容了。 以上也就完成了在jsp文件中写Java代码了。 2jsp执行流程 jsp文件为何可以写Java代码,其底层是怎么样的一个执行流程呢?画图讲解: ①浏览器访问demo01.jsp 根据对应的路径来访问jsp文件,该jsp文件会被转化成两个文件: demo01_jsp.java和demo01_jsp.class。 这两个文件对于Java开发者来说简直不要太熟悉了:一个是Java源码文件,一个是其对应的字节码文件。 也就是说jsp文件其实底层被转换成了Java文件,再执行的Java代码。 ②关于转换后的Java源码 打开对应的Java源码文件,当然上图中我只截图了一部分做一个说明,其实源码远不止这么点。 从截图中的部分代码可以看出: 中的代码被直接解析成java代码。 html部分都被out.write("")方法以字符串的形式拼接,然后响应给浏览器。 绕来绕去其实还是拼接,和最先开始的方法一样,只不过说jsp中拼接被封装了,不用我们写。 3三种书写Java代码的方式 ①脚本声明 格式: 中间有一个感叹号,这里面也是可以编写Java代码的。 查看其对应的Java源码文件,会发现这块代码对应于源码中的成员变量和成员方法 ②脚本片段 格式: 它比①就少了一个感叹号,其对应的是源码中_jspService方法的Java代码。 在Java中,方法里面是不能定义一个新的方法的,所以方法定义只能用①的格式来编写。 ③脚本表达式 格式: 其对应的Java代码就是out.print()。 三、EL表达式EL表达式就是专门来取代上面三种格式中③脚本表达式的。 格式为:${str}。其就相当于,其中str为一个变量。 1四大域对象 根据其范围从小到大排列: page域:只能在当前页面有效。request域:只在一次请求或请求域中有效。session域:一次会话(一次或多次请求和响应)过程中有效。application域:整个项目过程中都有效。2从四大域对象中取值 ①设定域对象的值 使用的方法都是setAttribute()方法,参数以键值对的方式存值, ②普通方式取值 以page域对象为例,其格式为: ${pageScope.pageKey} pageKey为page域对象对应的key,使用这种方式就能取出域对象中的值了。 ③简写方式取值 以page域对象为例,格式为:${pageKey} 将pageScope简化了,直接就是一个key。 但是这样就会有一个问题,key可能会重复。 毕竟key是人为命名的,page域对象中的key和request域对象中的key可能一样。 如果key重复了,会按照从小到大逐级查找。 3从Cookie中取值 ①保存Cookie到浏览器 在LoginServlet中保存两个Cookie到浏览器: usernameCookie:名为username,值为请求中的数据,即登录界面输入的用户名。passwordCookie:名为password,值为请求中的数据,也就是登录界面输入的密码。②取出Cookie对应的值 以usernameCookie为例,这个Cookie中的key为usename,根据key来取值。 格式为:${cookie.username.value} 这样做有什么好处?做一个测试: 在第一次登录输入用户名和密码后,其数据会被保存在cookie中,从而被页面读取到。 再次刷新时,用户名和密码会自动出现,就不用再次输入用户名和密码了。 最后谢谢你的观看。 如果可以的话,麻烦帮忙点个赞,谢谢你。 |
CopyRight 2018-2019 实验室设备网 版权所有 |